import Vue from 'vue'

import 'normalize.css/normalize.css' // A modern alternative to CSS resets

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
//import locale from 'element-ui/lib/locale/lang/en' // lang i18n

import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'

import '@/icons' // icon
import '@/permission' // permission control

/**
 * If you don't want to use mock-server
 * you want to use MockJs for mock api
 * you can execute: mockXHR()
 *
 * Currently MockJs will be used in the production environment,
 * please remove it before going online ! ! !
 */
if (process.env.NODE_ENV === 'production') {
  const { mockXHR } = require('../mock')
  mockXHR()
}

// set ElementUI lang to EN
//Vue.use(ElementUI, { locale })
//如果想要中文版 element-ui，按如下方式声明
Vue.use(ElementUI)

import Cookies from 'js-cookie'
Vue.use(Cookies)
import JsonViewer from 'vue-json-viewer'
Vue.use(JsonViewer)

//使用国际化
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
//高德地图
import VueAMap from 'vue-amap'
Vue.use(VueAMap)
/* 
VueAMap.initAMapApiLoader({
  key: '',
  plugin: ['AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor'],
  // 默认高德 sdk 版本为 1.4.4
  v: '1.4.4',
  uiVersion: '1.0.11'
});
*/
import Config from '@/config'
Vue.prototype.$config = Config;
import system from '@/config/system'
Vue.prototype.$system = system;
import tool from '@/utils/tool';
Vue.prototype.$tool = tool;
import request from '@/utils/request';
Vue.prototype.$request = request;
const initLang =  sessionStorage.getItem('lang');
const i18n = new VueI18n({
  locale: initLang ? initLang : Config.defaultLang, // 语言标识
  messages: {
    'zh-CN': require('./assets/lang/zh-CN'),
    'en-US': require('./assets/lang/en-US')
  }
})
//因为循环嵌套，暂时用全局组件先于实例化的方式解决
import tableEditor from 'common/danForm/tableEditor';
Vue.component("tableEditor",tableEditor)


Vue.config.productionTip = false
new Vue({
  el: '#app',
  router,
  store,
  i18n,
  render: h => h(App)
})
